<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>adjust_mosaic_images [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_tools.html">工具</a> / <a href="toc_tools_mosaicking.html">Mosaicking</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">adjust_mosaic_images</span><span data-if="c" style="display:none;">T_adjust_mosaic_images</span><span data-if="cpp" style="display:none;">AdjustMosaicImages</span><span data-if="dotnet" style="display:none;">AdjustMosaicImages</span><span data-if="python" style="display:none;">adjust_mosaic_images</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">adjust_mosaic_images</span><span data-if="c" style="display:none;">T_adjust_mosaic_images</span><span data-if="cpp" style="display:none;">AdjustMosaicImages</span><span data-if="dotnet" style="display:none;">AdjustMosaicImages</span><span data-if="python" style="display:none;">adjust_mosaic_images</span></code> — Apply an automatic color correction to panorama images.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>adjust_mosaic_images</b>(<a href="#Images"><i>Images</i></a> : <a href="#CorrectedImages"><i>CorrectedImages</i></a> : <a href="#From"><i>From</i></a>, <a href="#To"><i>To</i></a>, <a href="#ReferenceImage"><i>ReferenceImage</i></a>, <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, <a href="#EstimationMethod"><i>EstimationMethod</i></a>, <a href="#EstimateParameters"><i>EstimateParameters</i></a>, <a href="#OECFModel"><i>OECFModel</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_adjust_mosaic_images</b>(const Hobject <a href="#Images"><i>Images</i></a>, Hobject* <a href="#CorrectedImages"><i>CorrectedImages</i></a>, const Htuple <a href="#From"><i>From</i></a>, const Htuple <a href="#To"><i>To</i></a>, const Htuple <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const Htuple <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const Htuple <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const Htuple <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const Htuple <a href="#OECFModel"><i>OECFModel</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>AdjustMosaicImages</b>(const HObject&amp; <a href="#Images"><i>Images</i></a>, HObject* <a href="#CorrectedImages"><i>CorrectedImages</i></a>, const HTuple&amp; <a href="#From"><i>From</i></a>, const HTuple&amp; <a href="#To"><i>To</i></a>, const HTuple&amp; <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HTuple&amp; <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const HTuple&amp; <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const HTuple&amp; <a href="#OECFModel"><i>OECFModel</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AdjustMosaicImages</b>(const HTuple&amp; <a href="#From"><i>From</i></a>, const HTuple&amp; <a href="#To"><i>To</i></a>, Hlong <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HString&amp; <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const HTuple&amp; <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const HString&amp; <a href="#OECFModel"><i>OECFModel</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AdjustMosaicImages</b>(const HTuple&amp; <a href="#From"><i>From</i></a>, const HTuple&amp; <a href="#To"><i>To</i></a>, Hlong <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const HString&amp; <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const HString&amp; <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const HString&amp; <a href="#OECFModel"><i>OECFModel</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AdjustMosaicImages</b>(const HTuple&amp; <a href="#From"><i>From</i></a>, const HTuple&amp; <a href="#To"><i>To</i></a>, Hlong <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const char* <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const char* <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const char* <a href="#OECFModel"><i>OECFModel</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>::<b>AdjustMosaicImages</b>(const HTuple&amp; <a href="#From"><i>From</i></a>, const HTuple&amp; <a href="#To"><i>To</i></a>, Hlong <a href="#ReferenceImage"><i>ReferenceImage</i></a>, const HTuple&amp; <a href="#HomMatrices2D"><i>HomMatrices2D</i></a>, const wchar_t* <a href="#EstimationMethod"><i>EstimationMethod</i></a>, const wchar_t* <a href="#EstimateParameters"><i>EstimateParameters</i></a>, const wchar_t* <a href="#OECFModel"><i>OECFModel</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>AdjustMosaicImages</b>(<a href="HObject.html">HObject</a> <a href="#Images"><i>images</i></a>, out <a href="HObject.html">HObject</a> <a href="#CorrectedImages"><i>correctedImages</i></a>, <a href="HTuple.html">HTuple</a> <a href="#From"><i>from</i></a>, <a href="HTuple.html">HTuple</a> <a href="#To"><i>to</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ReferenceImage"><i>referenceImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#EstimationMethod"><i>estimationMethod</i></a>, <a href="HTuple.html">HTuple</a> <a href="#EstimateParameters"><i>estimateParameters</i></a>, <a href="HTuple.html">HTuple</a> <a href="#OECFModel"><i>OECFModel</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>AdjustMosaicImages</b>(<a href="HTuple.html">HTuple</a> <a href="#From"><i>from</i></a>, <a href="HTuple.html">HTuple</a> <a href="#To"><i>to</i></a>, int <a href="#ReferenceImage"><i>referenceImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, string <a href="#EstimationMethod"><i>estimationMethod</i></a>, <a href="HTuple.html">HTuple</a> <a href="#EstimateParameters"><i>estimateParameters</i></a>, string <a href="#OECFModel"><i>OECFModel</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HImage.html">HImage</a>.<b>AdjustMosaicImages</b>(<a href="HTuple.html">HTuple</a> <a href="#From"><i>from</i></a>, <a href="HTuple.html">HTuple</a> <a href="#To"><i>to</i></a>, int <a href="#ReferenceImage"><i>referenceImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#HomMatrices2D"><i>homMatrices2D</i></a>, string <a href="#EstimationMethod"><i>estimationMethod</i></a>, string <a href="#EstimateParameters"><i>estimateParameters</i></a>, string <a href="#OECFModel"><i>OECFModel</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>adjust_mosaic_images</b>(<a href="#Images"><i>images</i></a>: HObject, <a href="#From"><i>from_val</i></a>: Sequence[int], <a href="#To"><i>to</i></a>: Sequence[int], <a href="#ReferenceImage"><i>reference_image</i></a>: int, <a href="#HomMatrices2D"><i>hom_matrices_2d</i></a>: Sequence[float], <a href="#EstimationMethod"><i>estimation_method</i></a>: str, <a href="#EstimateParameters"><i>estimate_parameters</i></a>: MaybeSequence[str], <a href="#OECFModel"><i>oecfmodel</i></a>: str) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p> <code><span data-if="hdevelop" style="display:inline">adjust_mosaic_images</span><span data-if="c" style="display:none">adjust_mosaic_images</span><span data-if="cpp" style="display:none">AdjustMosaicImages</span><span data-if="com" style="display:none">AdjustMosaicImages</span><span data-if="dotnet" style="display:none">AdjustMosaicImages</span><span data-if="python" style="display:none">adjust_mosaic_images</span></code> performs the radiometric adjustment of images
in panoramas. The images to be corrected have to be passed in
<a href="#Images"><i><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></i></a>, the corrected images will be returned in
<a href="#CorrectedImages"><i><code><span data-if="hdevelop" style="display:inline">CorrectedImages</span><span data-if="c" style="display:none">CorrectedImages</span><span data-if="cpp" style="display:none">CorrectedImages</span><span data-if="com" style="display:none">CorrectedImages</span><span data-if="dotnet" style="display:none">correctedImages</span><span data-if="python" style="display:none">corrected_images</span></code></i></a>.
</p>
<p>The parameters <a href="#From"><i><code><span data-if="hdevelop" style="display:inline">From</span><span data-if="c" style="display:none">From</span><span data-if="cpp" style="display:none">From</span><span data-if="com" style="display:none">From</span><span data-if="dotnet" style="display:none">from</span><span data-if="python" style="display:none">from</span></code></i></a> and <a href="#To"><i><code><span data-if="hdevelop" style="display:inline">To</span><span data-if="c" style="display:none">To</span><span data-if="cpp" style="display:none">To</span><span data-if="com" style="display:none">To</span><span data-if="dotnet" style="display:none">to</span><span data-if="python" style="display:none">to</span></code></i></a> must contain the source and
destination indices of all image pairs in the panorama. The projective
3x3-matrix of each image pair has to be passed in <a href="#HomMatrices2D"><i><code><span data-if="hdevelop" style="display:inline">HomMatrices2D</span><span data-if="c" style="display:none">HomMatrices2D</span><span data-if="cpp" style="display:none">HomMatrices2D</span><span data-if="com" style="display:none">HomMatrices2D</span><span data-if="dotnet" style="display:none">homMatrices2D</span><span data-if="python" style="display:none">hom_matrices_2d</span></code></i></a>.
The image, which will be used as the reference for brightness and
white balance, is selected with the parameter <a href="#ReferenceImage"><i><code><span data-if="hdevelop" style="display:inline">ReferenceImage</span><span data-if="c" style="display:none">ReferenceImage</span><span data-if="cpp" style="display:none">ReferenceImage</span><span data-if="com" style="display:none">ReferenceImage</span><span data-if="dotnet" style="display:none">referenceImage</span><span data-if="python" style="display:none">reference_image</span></code></i></a>.
</p>
<p>This means, that one image specifies the "ideal" brightness and white
balance settings. All other images will be corrected such that their
brightness and white balance match that of the reference image. In other
words, the reference image will not be changed, but all other images will
be.
</p>
<p><a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> is used for choosing whether a fast but less
accurate, or a slower but more accurate determination method should be used.
This is done by setting <a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> either to
<i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i> or <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>.
</p>
<p>The methods based on <i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i> use only the average gray value
difference of all images in the overlap area between each image pair. With
<i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i> the gray value difference for each pixel in the
overlap area is taken into account explicitly.
</p>
<p>The error function that is minimized in all cases is computed as the summed
square of the difference between the corresponding gray values.
</p>
<p>The availability of the individual method is depending on the selected
<a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a>, which determines the model to be used for
estimating the radiometric adjustment terms. It is always possible to
determine the amount of vignetting in the images by selecting
<i><span data-if="hdevelop" style="display:inline">'vignetting'</span><span data-if="c" style="display:none">"vignetting"</span><span data-if="cpp" style="display:none">"vignetting"</span><span data-if="com" style="display:none">"vignetting"</span><span data-if="dotnet" style="display:none">"vignetting"</span><span data-if="python" style="display:none">"vignetting"</span></i>. However, if selected, <a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> must
be set to <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>. For the remainder of the radiometric
adjustment three different options are available:
</p>
<p>Estimation of vignetting in images is based on the commonly known <span title="1" class="displaymath"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="45.4795em" height="3.50677em" viewBox="0 0 727.672058 56.108383">
<!-- Original BoundingBox: -363.836029 -28.054199 363.836029 28.054184 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_99">
      <path style="fill-rule: evenodd;" d="M117.000000 -218.000000C117.000000 -381.000000,199.000000 -423.000000,252.000000 -423.000000C261.000000 -423.000000,324.000000 -422.000000,359.000000 -386.000000C318.000000 -383.000000,312.000000 -353.000000,312.000000 -340.000000C312.000000 -314.000000,330.000000 -294.000000,358.000000 -294.000000C384.000000 -294.000000,404.000000 -311.000000,404.000000 -341.000000C404.000000 -409.000000,328.000000 -448.000000,251.000000 -448.000000C126.000000 -448.000000,34.000000 -340.000000,34.000000 -216.000000C34.000000 -88.000000,133.000000 11.000000,249.000000 11.000000C383.000000 11.000000,415.000000 -109.000000,415.000000 -119.000000C415.000000 -129.000000,405.000000 -129.000000,402.000000 -129.000000C393.000000 -129.000000,391.000000 -125.000000,389.000000 -119.000000C360.000000 -26.000000,295.000000 -14.000000,258.000000 -14.000000C205.000000 -14.000000,117.000000 -57.000000,117.000000 -218.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_111">
      <path style="fill-rule: evenodd;" d="M471.000000 -214.000000C471.000000 -342.000000,371.000000 -448.000000,250.000000 -448.000000C125.000000 -448.000000,28.000000 -339.000000,28.000000 -214.000000C28.000000 -85.000000,132.000000 11.000000,249.000000 11.000000C370.000000 11.000000,471.000000 -87.000000,471.000000 -214.000000M250.000000 -14.000000C207.000000 -14.000000,163.000000 -35.000000,136.000000 -81.000000C111.000000 -125.000000,111.000000 -186.000000,111.000000 -222.000000C111.000000 -261.000000,111.000000 -315.000000,135.000000 -359.000000C162.000000 -405.000000,209.000000 -426.000000,249.000000 -426.000000C293.000000 -426.000000,336.000000 -404.000000,362.000000 -361.000000C388.000000 -318.000000,388.000000 -260.000000,388.000000 -222.000000C388.000000 -186.000000,388.000000 -132.000000,366.000000 -88.000000C344.000000 -43.000000,300.000000 -14.000000,250.000000 -14.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_115">
      <path style="fill-rule: evenodd;" d="M208.000000 -194.000000C230.000000 -190.000000,312.000000 -174.000000,312.000000 -102.000000C312.000000 -51.000000,277.000000 -11.000000,199.000000 -11.000000C115.000000 -11.000000,79.000000 -68.000000,60.000000 -153.000000C57.000000 -166.000000,56.000000 -170.000000,46.000000 -170.000000C33.000000 -170.000000,33.000000 -163.000000,33.000000 -145.000000L33.000000 -13.000000C33.000000 4.000000,33.000000 11.000000,44.000000 11.000000C49.000000 11.000000,50.000000 10.000000,69.000000 -9.000000C71.000000 -11.000000,71.000000 -13.000000,89.000000 -32.000000C133.000000 10.000000,178.000000 11.000000,199.000000 11.000000C314.000000 11.000000,360.000000 -56.000000,360.000000 -128.000000C360.000000 -181.000000,330.000000 -211.000000,318.000000 -223.000000C285.000000 -255.000000,246.000000 -263.000000,204.000000 -271.000000C148.000000 -282.000000,81.000000 -295.000000,81.000000 -353.000000C81.000000 -388.000000,107.000000 -429.000000,193.000000 -429.000000C303.000000 -429.000000,308.000000 -339.000000,310.000000 -308.000000C311.000000 -299.000000,320.000000 -299.000000,322.000000 -299.000000C335.000000 -299.000000,335.000000 -304.000000,335.000000 -323.000000L335.000000 -424.000000C335.000000 -441.000000,335.000000 -448.000000,324.000000 -448.000000C319.000000 -448.000000,317.000000 -448.000000,304.000000 -436.000000C301.000000 -432.000000,291.000000 -423.000000,287.000000 -420.000000C249.000000 -448.000000,208.000000 -448.000000,193.000000 -448.000000C71.000000 -448.000000,33.000000 -381.000000,33.000000 -325.000000C33.000000 -290.000000,49.000000 -262.000000,76.000000 -240.000000C108.000000 -214.000000,136.000000 -208.000000,208.000000 -194.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_65">
      <path style="fill-rule: evenodd;" d="M179.000000 -115.000000C139.000000 -48.000000,100.000000 -34.000000,56.000000 -31.000000C44.000000 -30.000000,35.000000 -30.000000,35.000000 -11.000000C35.000000 -5.000000,40.000000 -0.000000,48.000000 -0.000000L134.000000 -0.000000L75.000000 -0.000000L106.000000 -3.000000L134.000000 -3.000000L167.000000 -3.000000L202.000000 -0.000000L234.000000 -0.000000C240.000000 -0.000000,253.000000 -0.000000,253.000000 -19.000000C253.000000 -30.000000,244.000000 -31.000000,237.000000 -31.000000C214.000000 -33.000000,190.000000 -41.000000,190.000000 -66.000000C190.000000 -78.000000,196.000000 -89.000000,204.000000 -103.000000L280.000000 -231.000000L531.000000 -231.000000C533.000000 -210.000000,547.000000 -74.000000,547.000000 -64.000000C547.000000 -34.000000,495.000000 -31.000000,475.000000 -31.000000C461.000000 -31.000000,451.000000 -31.000000,451.000000 -11.000000C451.000000 -0.000000,463.000000 -0.000000,465.000000 -0.000000L590.000000 -0.000000L506.000000 -0.000000L549.000000 -3.000000L590.000000 -3.000000L615.000000 -3.000000L678.000000 -0.000000L703.000000 -0.000000C709.000000 -0.000000,721.000000 -0.000000,721.000000 -20.000000C721.000000 -31.000000,711.000000 -31.000000,698.000000 -31.000000C636.000000 -31.000000,636.000000 -38.000000,633.000000 -67.000000L572.000000 -692.000000C570.000000 -712.000000,570.000000 -716.000000,553.000000 -716.000000C537.000000 -716.000000,533.000000 -709.000000,527.000000 -699.000000M299.000000 -262.000000L496.000000 -592.000000L528.000000 -262.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_97">
      <path style="fill-rule: evenodd;" d="M373.000000 -378.000000C355.000000 -415.000000,326.000000 -442.000000,281.000000 -442.000000C164.000000 -442.000000,40.000000 -295.000000,40.000000 -149.000000C40.000000 -55.000000,95.000000 11.000000,173.000000 11.000000C193.000000 11.000000,243.000000 7.000000,303.000000 -64.000000C311.000000 -22.000000,346.000000 11.000000,394.000000 11.000000C429.000000 11.000000,452.000000 -12.000000,468.000000 -44.000000C485.000000 -80.000000,498.000000 -141.000000,498.000000 -143.000000C498.000000 -153.000000,489.000000 -153.000000,486.000000 -153.000000C476.000000 -153.000000,475.000000 -149.000000,472.000000 -135.000000C455.000000 -70.000000,437.000000 -11.000000,396.000000 -11.000000C369.000000 -11.000000,366.000000 -37.000000,366.000000 -57.000000C366.000000 -79.000000,368.000000 -87.000000,379.000000 -131.000000C390.000000 -173.000000,392.000000 -183.000000,401.000000 -221.000000L437.000000 -361.000000C444.000000 -389.000000,444.000000 -391.000000,444.000000 -395.000000C444.000000 -412.000000,432.000000 -422.000000,415.000000 -422.000000C391.000000 -422.000000,376.000000 -400.000000,373.000000 -378.000000M308.000000 -119.000000C303.000000 -101.000000,303.000000 -99.000000,288.000000 -82.000000C244.000000 -27.000000,203.000000 -11.000000,175.000000 -11.000000C125.000000 -11.000000,111.000000 -66.000000,111.000000 -105.000000C111.000000 -155.000000,143.000000 -278.000000,166.000000 -324.000000C197.000000 -383.000000,242.000000 -420.000000,282.000000 -420.000000C347.000000 -420.000000,361.000000 -338.000000,361.000000 -332.000000C361.000000 -326.000000,359.000000 -320.000000,358.000000 -315.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_104">
      <path style="fill-rule: evenodd;" d="M287.000000 -683.000000C287.000000 -684.000000,287.000000 -694.000000,274.000000 -694.000000C251.000000 -694.000000,178.000000 -686.000000,152.000000 -684.000000C144.000000 -683.000000,133.000000 -682.000000,133.000000 -664.000000C133.000000 -652.000000,142.000000 -652.000000,157.000000 -652.000000C205.000000 -652.000000,207.000000 -645.000000,207.000000 -635.000000L204.000000 -615.000000L59.000000 -39.000000C55.000000 -25.000000,55.000000 -23.000000,55.000000 -17.000000C55.000000 6.000000,75.000000 11.000000,84.000000 11.000000C100.000000 11.000000,116.000000 -1.000000,121.000000 -15.000000L140.000000 -91.000000L162.000000 -181.000000C168.000000 -203.000000,174.000000 -225.000000,179.000000 -248.000000C181.000000 -254.000000,189.000000 -287.000000,190.000000 -293.000000C193.000000 -302.000000,224.000000 -358.000000,258.000000 -385.000000C280.000000 -401.000000,311.000000 -420.000000,354.000000 -420.000000C397.000000 -420.000000,408.000000 -386.000000,408.000000 -350.000000C408.000000 -296.000000,370.000000 -187.000000,346.000000 -126.000000C338.000000 -103.000000,333.000000 -91.000000,333.000000 -71.000000C333.000000 -24.000000,368.000000 11.000000,415.000000 11.000000C509.000000 11.000000,546.000000 -135.000000,546.000000 -143.000000C546.000000 -153.000000,537.000000 -153.000000,534.000000 -153.000000C524.000000 -153.000000,524.000000 -150.000000,519.000000 -135.000000C504.000000 -82.000000,472.000000 -11.000000,417.000000 -11.000000C400.000000 -11.000000,393.000000 -21.000000,393.000000 -44.000000C393.000000 -69.000000,402.000000 -93.000000,411.000000 -115.000000C427.000000 -158.000000,472.000000 -277.000000,472.000000 -335.000000C472.000000 -400.000000,432.000000 -442.000000,357.000000 -442.000000C294.000000 -442.000000,246.000000 -411.000000,209.000000 -365.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_108">
      <path style="fill-rule: evenodd;" d="M258.000000 -683.000000C258.000000 -684.000000,258.000000 -694.000000,245.000000 -694.000000C222.000000 -694.000000,149.000000 -686.000000,123.000000 -684.000000C115.000000 -683.000000,104.000000 -682.000000,104.000000 -663.000000C104.000000 -652.000000,114.000000 -652.000000,129.000000 -652.000000C177.000000 -652.000000,178.000000 -643.000000,178.000000 -635.000000L175.000000 -615.000000L49.000000 -115.000000C46.000000 -104.000000,44.000000 -97.000000,44.000000 -81.000000C44.000000 -24.000000,88.000000 11.000000,135.000000 11.000000C168.000000 11.000000,193.000000 -9.000000,210.000000 -45.000000C228.000000 -83.000000,240.000000 -141.000000,240.000000 -143.000000C240.000000 -153.000000,231.000000 -153.000000,228.000000 -153.000000C218.000000 -153.000000,217.000000 -149.000000,214.000000 -135.000000C197.000000 -70.000000,178.000000 -11.000000,138.000000 -11.000000C108.000000 -11.000000,108.000000 -43.000000,108.000000 -57.000000C108.000000 -81.000000,109.000000 -86.000000,114.000000 -105.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_112">
      <path style="fill-rule: evenodd;" d="M45.000000 122.000000C37.000000 156.000000,35.000000 163.000000,-9.000000 163.000000C-21.000000 163.000000,-32.000000 163.000000,-32.000000 182.000000C-32.000000 190.000000,-27.000000 194.000000,-19.000000 194.000000L65.000000 194.000000L8.000000 194.000000L37.000000 191.000000L65.000000 191.000000L98.000000 191.000000L132.000000 194.000000L164.000000 194.000000C169.000000 194.000000,182.000000 194.000000,182.000000 174.000000C182.000000 163.000000,172.000000 163.000000,158.000000 163.000000C108.000000 163.000000,108.000000 156.000000,108.000000 147.000000C108.000000 135.000000,150.000000 -28.000000,157.000000 -53.000000C170.000000 -24.000000,198.000000 11.000000,249.000000 11.000000C365.000000 11.000000,490.000000 -135.000000,490.000000 -282.000000C490.000000 -376.000000,433.000000 -442.000000,357.000000 -442.000000C307.000000 -442.000000,259.000000 -406.000000,226.000000 -367.000000C216.000000 -421.000000,173.000000 -442.000000,136.000000 -442.000000C90.000000 -442.000000,71.000000 -403.000000,62.000000 -385.000000C44.000000 -351.000000,31.000000 -291.000000,31.000000 -288.000000C31.000000 -278.000000,41.000000 -278.000000,43.000000 -278.000000C53.000000 -278.000000,54.000000 -279.000000,60.000000 -301.000000C77.000000 -372.000000,97.000000 -420.000000,133.000000 -420.000000C150.000000 -420.000000,164.000000 -412.000000,164.000000 -374.000000C164.000000 -351.000000,161.000000 -340.000000,157.000000 -323.000000M221.000000 -312.000000C228.000000 -339.000000,255.000000 -367.000000,273.000000 -382.000000C308.000000 -413.000000,337.000000 -420.000000,354.000000 -420.000000C394.000000 -420.000000,418.000000 -385.000000,418.000000 -326.000000C418.000000 -267.000000,385.000000 -152.000000,367.000000 -114.000000C333.000000 -44.000000,285.000000 -11.000000,248.000000 -11.000000C182.000000 -11.000000,169.000000 -94.000000,169.000000 -100.000000C169.000000 -102.000000,169.000000 -104.000000,172.000000 -116.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_52">
      <path style="fill-rule: evenodd;" d="M529.000000 -164.000000L529.000000 -200.000000L418.000000 -200.000000L418.000000 -646.000000C418.000000 -667.000000,418.000000 -674.000000,396.000000 -674.000000C384.000000 -674.000000,380.000000 -674.000000,370.000000 -660.000000L39.000000 -200.000000L39.000000 -164.000000L333.000000 -164.000000L333.000000 -82.000000C333.000000 -48.000000,333.000000 -36.000000,252.000000 -36.000000L225.000000 -36.000000L225.000000 -0.000000L375.000000 -0.000000L275.000000 -2.000000L339.000000 -4.000000L375.000000 -4.000000L412.000000 -4.000000L476.000000 -2.000000L526.000000 -0.000000L526.000000 -36.000000L499.000000 -36.000000C418.000000 -36.000000,418.000000 -48.000000,418.000000 -82.000000L418.000000 -164.000000M340.000000 -566.000000L340.000000 -200.000000L76.000000 -200.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,310.157150 36.014420)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_99"></use>
    <use xlink:href="#GLYPHcmr10_111" x="4.444529"></use>
    <use xlink:href="#GLYPHcmr10_115" x="9.444624"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,331.499466 29.432816)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_52"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,341.307190 36.014420)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_65"></use>
    <use xlink:href="#GLYPHcmmi10_108" x="7.500135"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,358.332214 36.014420)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_112"></use>
    <use xlink:href="#GLYPHcmmi10_104" x="5.031340"></use>
    <use xlink:href="#GLYPHcmmi10_97" x="10.793020"></use>
  </g>
</svg></span>
approach. This approach assumes that vignetting does not exist in the
center of the image and increases with the opening angle by the above
equation.
</p>
<p>1. Image adjustment with the additive model. This should only be used to
adjust images with very small differences in exposure or white balance. To
choose this method, <a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> must be set to
<i><span data-if="hdevelop" style="display:inline">'add_gray'</span><span data-if="c" style="display:none">"add_gray"</span><span data-if="cpp" style="display:none">"add_gray"</span><span data-if="com" style="display:none">"add_gray"</span><span data-if="dotnet" style="display:none">"add_gray"</span><span data-if="python" style="display:none">"add_gray"</span></i>. This model can be selected either exclusively and only
with <a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i> or in combination with
<a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'vignetting'</span><span data-if="c" style="display:none">"vignetting"</span><span data-if="cpp" style="display:none">"vignetting"</span><span data-if="com" style="display:none">"vignetting"</span><span data-if="dotnet" style="display:none">"vignetting"</span><span data-if="python" style="display:none">"vignetting"</span></i> and only with
<a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>.
</p>This model is based on the assumption, that the gray value differences
between the images can be corrected by adding an individual value to each
image accept the reference image. Basically, the modification to every
image can be expressed as a call of <a href="scale_image.html"><code><span data-if="hdevelop" style="display:inline">scale_image</span><span data-if="c" style="display:none">scale_image</span><span data-if="cpp" style="display:none">ScaleImage</span><span data-if="com" style="display:none">ScaleImage</span><span data-if="dotnet" style="display:none">ScaleImage</span><span data-if="python" style="display:none">scale_image</span></code></a>:
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="layout">
<col span="1" style="width:90%;">
<tr><td style="text-align:left">
<a href="scale_image.html"><code><span data-if="hdevelop" style="display:inline">scale_image(Image_n,CorrectedImage_n,1.0,Add_n)</span><span data-if="c" style="display:none">scale_image(Image_n,CorrectedImage_n,1.0,Add_n)</span><span data-if="cpp" style="display:none">ScaleImage(Image_n,CorrectedImage_n,1.0,Add_n)</span><span data-if="com" style="display:none">ScaleImage(Image_n,CorrectedImage_n,1.0,Add_n)</span><span data-if="dotnet" style="display:none">ScaleImage(Image_n,CorrectedImage_n,1.0,Add_n)</span><span data-if="python" style="display:none">scale_image(Image_n,CorrectedImage_n,1.0,Add_n)</span></code></a>
</td></tr>
</table></div>
where <code>Add_n</code> is the correction term for this image.
<p>2. Image adjustment with the linear model. In this model, images are
expected to be taken with a camera using a linear transfer function. The
adjustment terms are consequently represented as multiplication factors.
To select this model, <a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> must be set to
<i><span data-if="hdevelop" style="display:inline">'mult_gray'</span><span data-if="c" style="display:none">"mult_gray"</span><span data-if="cpp" style="display:none">"mult_gray"</span><span data-if="com" style="display:none">"mult_gray"</span><span data-if="dotnet" style="display:none">"mult_gray"</span><span data-if="python" style="display:none">"mult_gray"</span></i>. It can be called with
<a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i> or
<a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>. A combined call with
<a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'vignetting'</span><span data-if="c" style="display:none">"vignetting"</span><span data-if="cpp" style="display:none">"vignetting"</span><span data-if="com" style="display:none">"vignetting"</span><span data-if="dotnet" style="display:none">"vignetting"</span><span data-if="python" style="display:none">"vignetting"</span></i> is also possible,
<a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> must be set to <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i> in that
case.
</p>This model is based on the assumption that the gray value differences
between the images can be corrected by multiplying the gray values in each
image by a factor. Basically, the modification to every image can again be
expressed as a call of <a href="scale_image.html"><code><span data-if="hdevelop" style="display:inline">scale_image</span><span data-if="c" style="display:none">scale_image</span><span data-if="cpp" style="display:none">ScaleImage</span><span data-if="com" style="display:none">ScaleImage</span><span data-if="dotnet" style="display:none">ScaleImage</span><span data-if="python" style="display:none">scale_image</span></code></a>:
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="layout">
<col span="1" style="width:90%;">
<tr><td style="text-align:left">
<a href="scale_image.html"><code><span data-if="hdevelop" style="display:inline">scale_image(Image_n,CorrectedImage_n,Mult_n,0)</span><span data-if="c" style="display:none">scale_image(Image_n,CorrectedImage_n,Mult_n,0)</span><span data-if="cpp" style="display:none">ScaleImage(Image_n,CorrectedImage_n,Mult_n,0)</span><span data-if="com" style="display:none">ScaleImage(Image_n,CorrectedImage_n,Mult_n,0)</span><span data-if="dotnet" style="display:none">ScaleImage(Image_n,CorrectedImage_n,Mult_n,0)</span><span data-if="python" style="display:none">scale_image(Image_n,CorrectedImage_n,Mult_n,0)</span></code></a>
</td></tr>
</table></div>
where <code>Mult_n</code> is the correction term for this image.
<p>3. Image adjustment with the calibrated model. In this model, images are
assumed to be taken with a camera using a nonlinear transfer function.
A function of the OECF class selected with <a href="#OECFModel"><i><code><span data-if="hdevelop" style="display:inline">OECFModel</span><span data-if="c" style="display:none">OECFModel</span><span data-if="cpp" style="display:none">OECFModel</span><span data-if="com" style="display:none">OECFModel</span><span data-if="dotnet" style="display:none">OECFModel</span><span data-if="python" style="display:none">oecfmodel</span></code></i></a> is used to
approximate the actually used OECF in the process of image acquisition. As
with the linear model, the correction terms are represented as
multiplication factors. This model can be selected by choosing
<a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">['mult_gray','response']</span><span data-if="c" style="display:none">["mult_gray","response"]</span><span data-if="cpp" style="display:none">["mult_gray","response"]</span><span data-if="com" style="display:none">["mult_gray","response"]</span><span data-if="dotnet" style="display:none">["mult_gray","response"]</span><span data-if="python" style="display:none">["mult_gray","response"]</span></i> and must be
called with <a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>. It is
possible to determine the amount of vignetting as well in this case by
choosing <a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'vignetting'</span><span data-if="c" style="display:none">"vignetting"</span><span data-if="cpp" style="display:none">"vignetting"</span><span data-if="com" style="display:none">"vignetting"</span><span data-if="dotnet" style="display:none">"vignetting"</span><span data-if="python" style="display:none">"vignetting"</span></i>.
</p>
<p>This model is similar to the linear model. However, in this case the camera
may have a nonlinear response. This means that before the gray values of
the images can be multiplied by their respective correction factor, the
gray values must be backprojected to a linear response. To do so, the
camera's response must be determined. Since the response usually does not
change over an image sequence, this parameter is assumed to be constant
throughout the whole image sequence.
</p>
<p>Any kind of function could be considered to be used as an OECF. As in the
operator <a href="radiometric_self_calibration.html"><code><span data-if="hdevelop" style="display:inline">radiometric_self_calibration</span><span data-if="c" style="display:none">radiometric_self_calibration</span><span data-if="cpp" style="display:none">RadiometricSelfCalibration</span><span data-if="com" style="display:none">RadiometricSelfCalibration</span><span data-if="dotnet" style="display:none">RadiometricSelfCalibration</span><span data-if="python" style="display:none">radiometric_self_calibration</span></code></a>, a polynomial fitting might
be used, but for typical images in a mosaicking application this would not
work very well. The reason for this is that polynomial fitting has too many
parameters that need to be determined. Instead, only simpler types of
response functions can be estimated. Currently, only so-called
Laguerre-functions are available.
</p>
<p>The response of a Laguerre-type OECF is determined by only one parameter
called Phi. In a first step, the whole gray value spectrum (in case of 8bit
images the values 0 to 255) is converted to floating point numbers in the
interval [0:1]. Then, the OECF backprojection is calculated based on this
and the resulting gray values are once again converted to the original
interval.
</p>
<p>The inverse transform of the gray values back to linear values based on a
Laguerre-type OECF is described by the following equation:
</p>
<p><span title="2" class="displaymath"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="45.4795em" height="4.57081em" viewBox="0 0 727.672058 73.132904">
<!-- Original BoundingBox: -363.836029 -36.566452 363.836029 36.566452 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_40">
      <path style="fill-rule: evenodd;" d="M331.000000 240.000000C331.000000 237.000000,331.000000 235.000000,314.000000 218.000000C189.000000 92.000000,157.000000 -97.000000,157.000000 -250.000000C157.000000 -424.000000,195.000000 -598.000000,318.000000 -723.000000C331.000000 -735.000000,331.000000 -737.000000,331.000000 -740.000000C331.000000 -747.000000,327.000000 -750.000000,321.000000 -750.000000C311.000000 -750.000000,221.000000 -682.000000,162.000000 -555.000000C111.000000 -445.000000,99.000000 -334.000000,99.000000 -250.000000C99.000000 -172.000000,110.000000 -51.000000,165.000000 62.000000C225.000000 185.000000,311.000000 250.000000,321.000000 250.000000C327.000000 250.000000,331.000000 247.000000,331.000000 240.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_41">
      <path style="fill-rule: evenodd;" d="M289.000000 -250.000000C289.000000 -328.000000,278.000000 -449.000000,223.000000 -562.000000C163.000000 -685.000000,77.000000 -750.000000,67.000000 -750.000000C61.000000 -750.000000,57.000000 -746.000000,57.000000 -740.000000C57.000000 -737.000000,57.000000 -735.000000,76.000000 -717.000000C174.000000 -618.000000,231.000000 -459.000000,231.000000 -250.000000C231.000000 -79.000000,194.000000 97.000000,70.000000 223.000000C57.000000 235.000000,57.000000 237.000000,57.000000 240.000000C57.000000 246.000000,61.000000 250.000000,67.000000 250.000000C77.000000 250.000000,167.000000 182.000000,226.000000 55.000000C277.000000 -55.000000,289.000000 -166.000000,289.000000 -250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_43">
      <path style="fill-rule: evenodd;" d="M409.000000 -230.000000L688.000000 -230.000000C702.000000 -230.000000,721.000000 -230.000000,721.000000 -250.000000C721.000000 -270.000000,702.000000 -270.000000,688.000000 -270.000000L409.000000 -270.000000L409.000000 -550.000000C409.000000 -564.000000,409.000000 -583.000000,389.000000 -583.000000C369.000000 -583.000000,369.000000 -564.000000,369.000000 -550.000000L369.000000 -270.000000L89.000000 -270.000000C75.000000 -270.000000,56.000000 -270.000000,56.000000 -250.000000C56.000000 -230.000000,75.000000 -230.000000,89.000000 -230.000000L369.000000 -230.000000L369.000000 50.000000C369.000000 64.000000,369.000000 83.000000,389.000000 83.000000C409.000000 83.000000,409.000000 64.000000,409.000000 50.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_49">
      <path style="fill-rule: evenodd;" d="M294.000000 -640.000000C294.000000 -664.000000,294.000000 -666.000000,271.000000 -666.000000C209.000000 -602.000000,121.000000 -602.000000,89.000000 -602.000000L89.000000 -571.000000C109.000000 -571.000000,168.000000 -571.000000,220.000000 -597.000000L220.000000 -79.000000C220.000000 -43.000000,217.000000 -31.000000,127.000000 -31.000000L95.000000 -31.000000L95.000000 -0.000000L257.000000 -0.000000L130.000000 -3.000000L217.000000 -3.000000L257.000000 -3.000000L297.000000 -3.000000L384.000000 -3.000000L419.000000 -0.000000L419.000000 -31.000000L387.000000 -31.000000C297.000000 -31.000000,294.000000 -42.000000,294.000000 -79.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_61">
      <path style="fill-rule: evenodd;" d="M687.000000 -327.000000C702.000000 -327.000000,721.000000 -327.000000,721.000000 -347.000000C721.000000 -367.000000,702.000000 -367.000000,688.000000 -367.000000L89.000000 -367.000000C75.000000 -367.000000,56.000000 -367.000000,56.000000 -347.000000C56.000000 -327.000000,75.000000 -327.000000,90.000000 -327.000000M688.000000 -133.000000C702.000000 -133.000000,721.000000 -133.000000,721.000000 -153.000000C721.000000 -173.000000,702.000000 -173.000000,687.000000 -173.000000L90.000000 -173.000000C75.000000 -173.000000,56.000000 -173.000000,56.000000 -153.000000C56.000000 -133.000000,75.000000 -133.000000,89.000000 -133.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_97">
      <path style="fill-rule: evenodd;" d="M333.000000 -76.000000C337.000000 -36.000000,364.000000 6.000000,411.000000 6.000000C432.000000 6.000000,493.000000 -8.000000,493.000000 -89.000000L493.000000 -145.000000L468.000000 -145.000000L468.000000 -89.000000C468.000000 -31.000000,443.000000 -25.000000,432.000000 -25.000000C399.000000 -25.000000,395.000000 -70.000000,395.000000 -75.000000L395.000000 -275.000000C395.000000 -317.000000,395.000000 -356.000000,359.000000 -393.000000C320.000000 -432.000000,270.000000 -448.000000,222.000000 -448.000000C140.000000 -448.000000,71.000000 -401.000000,71.000000 -335.000000C71.000000 -305.000000,91.000000 -288.000000,117.000000 -288.000000C145.000000 -288.000000,163.000000 -308.000000,163.000000 -334.000000C163.000000 -346.000000,158.000000 -379.000000,112.000000 -380.000000C139.000000 -415.000000,188.000000 -426.000000,220.000000 -426.000000C269.000000 -426.000000,326.000000 -387.000000,326.000000 -298.000000L326.000000 -261.000000C275.000000 -258.000000,205.000000 -255.000000,142.000000 -225.000000C67.000000 -191.000000,42.000000 -139.000000,42.000000 -95.000000C42.000000 -14.000000,139.000000 11.000000,202.000000 11.000000C268.000000 11.000000,314.000000 -29.000000,333.000000 -76.000000M326.000000 -240.000000L326.000000 -140.000000C326.000000 -45.000000,254.000000 -11.000000,209.000000 -11.000000C160.000000 -11.000000,119.000000 -46.000000,119.000000 -96.000000C119.000000 -151.000000,161.000000 -234.000000,326.000000 -240.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_99">
      <path style="fill-rule: evenodd;" d="M117.000000 -218.000000C117.000000 -381.000000,199.000000 -423.000000,252.000000 -423.000000C261.000000 -423.000000,324.000000 -422.000000,359.000000 -386.000000C318.000000 -383.000000,312.000000 -353.000000,312.000000 -340.000000C312.000000 -314.000000,330.000000 -294.000000,358.000000 -294.000000C384.000000 -294.000000,404.000000 -311.000000,404.000000 -341.000000C404.000000 -409.000000,328.000000 -448.000000,251.000000 -448.000000C126.000000 -448.000000,34.000000 -340.000000,34.000000 -216.000000C34.000000 -88.000000,133.000000 11.000000,249.000000 11.000000C383.000000 11.000000,415.000000 -109.000000,415.000000 -119.000000C415.000000 -129.000000,405.000000 -129.000000,402.000000 -129.000000C393.000000 -129.000000,391.000000 -125.000000,389.000000 -119.000000C360.000000 -26.000000,295.000000 -14.000000,258.000000 -14.000000C205.000000 -14.000000,117.000000 -57.000000,117.000000 -218.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_105">
      <path style="fill-rule: evenodd;" d="M177.000000 -442.000000L37.000000 -431.000000L37.000000 -400.000000C102.000000 -400.000000,111.000000 -394.000000,111.000000 -345.000000L111.000000 -76.000000C111.000000 -31.000000,100.000000 -31.000000,33.000000 -31.000000L33.000000 -0.000000L143.000000 -0.000000L65.000000 -1.000000L119.000000 -3.000000L143.000000 -3.000000L178.000000 -3.000000L213.000000 -1.000000L247.000000 -0.000000L247.000000 -31.000000C181.000000 -31.000000,177.000000 -36.000000,177.000000 -75.000000M181.000000 -616.000000C181.000000 -648.000000,156.000000 -669.000000,128.000000 -669.000000C97.000000 -669.000000,75.000000 -642.000000,75.000000 -616.000000C75.000000 -589.000000,97.000000 -563.000000,128.000000 -563.000000C156.000000 -563.000000,181.000000 -584.000000,181.000000 -616.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_110">
      <path style="fill-rule: evenodd;" d="M110.000000 -344.000000L110.000000 -76.000000C110.000000 -31.000000,99.000000 -31.000000,32.000000 -31.000000L32.000000 -0.000000L145.000000 -0.000000L67.000000 -1.000000L118.000000 -3.000000L145.000000 -3.000000L171.000000 -3.000000L223.000000 -1.000000L257.000000 -0.000000L257.000000 -31.000000C190.000000 -31.000000,179.000000 -31.000000,179.000000 -76.000000L179.000000 -260.000000C179.000000 -364.000000,250.000000 -420.000000,314.000000 -420.000000C377.000000 -420.000000,388.000000 -366.000000,388.000000 -309.000000L388.000000 -76.000000C388.000000 -31.000000,377.000000 -31.000000,310.000000 -31.000000L310.000000 -0.000000L423.000000 -0.000000L345.000000 -1.000000L396.000000 -3.000000L423.000000 -3.000000L449.000000 -3.000000L501.000000 -1.000000L535.000000 -0.000000L535.000000 -31.000000C483.000000 -31.000000,458.000000 -31.000000,457.000000 -61.000000L457.000000 -252.000000C457.000000 -338.000000,457.000000 -369.000000,426.000000 -405.000000C412.000000 -422.000000,379.000000 -442.000000,321.000000 -442.000000C248.000000 -442.000000,201.000000 -399.000000,173.000000 -337.000000L173.000000 -442.000000L32.000000 -431.000000L32.000000 -400.000000C102.000000 -400.000000,110.000000 -393.000000,110.000000 -344.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_111">
      <path style="fill-rule: evenodd;" d="M471.000000 -214.000000C471.000000 -342.000000,371.000000 -448.000000,250.000000 -448.000000C125.000000 -448.000000,28.000000 -339.000000,28.000000 -214.000000C28.000000 -85.000000,132.000000 11.000000,249.000000 11.000000C370.000000 11.000000,471.000000 -87.000000,471.000000 -214.000000M250.000000 -14.000000C207.000000 -14.000000,163.000000 -35.000000,136.000000 -81.000000C111.000000 -125.000000,111.000000 -186.000000,111.000000 -222.000000C111.000000 -261.000000,111.000000 -315.000000,135.000000 -359.000000C162.000000 -405.000000,209.000000 -426.000000,249.000000 -426.000000C293.000000 -426.000000,336.000000 -404.000000,362.000000 -361.000000C388.000000 -318.000000,388.000000 -260.000000,388.000000 -222.000000C388.000000 -186.000000,388.000000 -132.000000,366.000000 -88.000000C344.000000 -43.000000,300.000000 -14.000000,250.000000 -14.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_114">
      <path style="fill-rule: evenodd;" d="M167.000000 -332.000000L167.000000 -442.000000L28.000000 -431.000000L28.000000 -400.000000C98.000000 -400.000000,106.000000 -393.000000,106.000000 -344.000000L106.000000 -76.000000C106.000000 -31.000000,95.000000 -31.000000,28.000000 -31.000000L28.000000 -0.000000L142.000000 -0.000000L67.000000 -1.000000L114.000000 -3.000000L142.000000 -3.000000L182.000000 -3.000000L229.000000 -3.000000L269.000000 -0.000000L269.000000 -31.000000L248.000000 -31.000000C174.000000 -31.000000,172.000000 -42.000000,172.000000 -78.000000L172.000000 -232.000000C172.000000 -331.000000,214.000000 -420.000000,290.000000 -420.000000C297.000000 -420.000000,299.000000 -420.000000,301.000000 -419.000000C298.000000 -418.000000,278.000000 -406.000000,278.000000 -380.000000C278.000000 -352.000000,299.000000 -337.000000,321.000000 -337.000000C339.000000 -337.000000,364.000000 -349.000000,364.000000 -381.000000C364.000000 -413.000000,333.000000 -442.000000,290.000000 -442.000000C217.000000 -442.000000,181.000000 -375.000000,167.000000 -332.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_115">
      <path style="fill-rule: evenodd;" d="M208.000000 -194.000000C230.000000 -190.000000,312.000000 -174.000000,312.000000 -102.000000C312.000000 -51.000000,277.000000 -11.000000,199.000000 -11.000000C115.000000 -11.000000,79.000000 -68.000000,60.000000 -153.000000C57.000000 -166.000000,56.000000 -170.000000,46.000000 -170.000000C33.000000 -170.000000,33.000000 -163.000000,33.000000 -145.000000L33.000000 -13.000000C33.000000 4.000000,33.000000 11.000000,44.000000 11.000000C49.000000 11.000000,50.000000 10.000000,69.000000 -9.000000C71.000000 -11.000000,71.000000 -13.000000,89.000000 -32.000000C133.000000 10.000000,178.000000 11.000000,199.000000 11.000000C314.000000 11.000000,360.000000 -56.000000,360.000000 -128.000000C360.000000 -181.000000,330.000000 -211.000000,318.000000 -223.000000C285.000000 -255.000000,246.000000 -263.000000,204.000000 -271.000000C148.000000 -282.000000,81.000000 -295.000000,81.000000 -353.000000C81.000000 -388.000000,107.000000 -429.000000,193.000000 -429.000000C303.000000 -429.000000,308.000000 -339.000000,310.000000 -308.000000C311.000000 -299.000000,320.000000 -299.000000,322.000000 -299.000000C335.000000 -299.000000,335.000000 -304.000000,335.000000 -323.000000L335.000000 -424.000000C335.000000 -441.000000,335.000000 -448.000000,324.000000 -448.000000C319.000000 -448.000000,317.000000 -448.000000,304.000000 -436.000000C301.000000 -432.000000,291.000000 -423.000000,287.000000 -420.000000C249.000000 -448.000000,208.000000 -448.000000,193.000000 -448.000000C71.000000 -448.000000,33.000000 -381.000000,33.000000 -325.000000C33.000000 -290.000000,49.000000 -262.000000,76.000000 -240.000000C108.000000 -214.000000,136.000000 -208.000000,208.000000 -194.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_116">
      <path style="fill-rule: evenodd;" d="M173.000000 -400.000000L316.000000 -400.000000L316.000000 -431.000000L173.000000 -431.000000L173.000000 -615.000000L148.000000 -615.000000C147.000000 -533.000000,117.000000 -426.000000,19.000000 -422.000000L19.000000 -400.000000L104.000000 -400.000000L104.000000 -124.000000C104.000000 -1.000000,197.000000 11.000000,233.000000 11.000000C304.000000 11.000000,332.000000 -60.000000,332.000000 -124.000000L332.000000 -181.000000L307.000000 -181.000000L307.000000 -126.000000C307.000000 -52.000000,277.000000 -14.000000,240.000000 -14.000000C173.000000 -14.000000,173.000000 -105.000000,173.000000 -122.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_0">
      <path style="fill-rule: evenodd;" d="M659.000000 -230.000000C676.000000 -230.000000,694.000000 -230.000000,694.000000 -250.000000C694.000000 -270.000000,676.000000 -270.000000,659.000000 -270.000000L118.000000 -270.000000C101.000000 -270.000000,83.000000 -270.000000,83.000000 -250.000000C83.000000 -230.000000,101.000000 -230.000000,118.000000 -230.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_1">
      <path style="fill-rule: evenodd;" d="M192.000000 -250.000000C192.000000 -279.000000,168.000000 -303.000000,139.000000 -303.000000C110.000000 -303.000000,86.000000 -279.000000,86.000000 -250.000000C86.000000 -221.000000,110.000000 -197.000000,139.000000 -197.000000C168.000000 -197.000000,192.000000 -221.000000,192.000000 -250.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_25">
      <path style="fill-rule: evenodd;" d="M265.000000 -373.000000L378.000000 -373.000000C345.000000 -225.000000,336.000000 -182.000000,336.000000 -115.000000C336.000000 -100.000000,336.000000 -73.000000,344.000000 -39.000000C354.000000 5.000000,365.000000 11.000000,380.000000 11.000000C400.000000 11.000000,421.000000 -7.000000,421.000000 -27.000000C421.000000 -33.000000,421.000000 -35.000000,415.000000 -49.000000C386.000000 -121.000000,386.000000 -186.000000,386.000000 -214.000000C386.000000 -267.000000,393.000000 -321.000000,404.000000 -373.000000L518.000000 -373.000000C531.000000 -373.000000,567.000000 -373.000000,567.000000 -407.000000C567.000000 -431.000000,546.000000 -431.000000,527.000000 -431.000000L192.000000 -431.000000C170.000000 -431.000000,132.000000 -431.000000,88.000000 -384.000000C53.000000 -345.000000,27.000000 -299.000000,27.000000 -294.000000C27.000000 -293.000000,27.000000 -284.000000,39.000000 -284.000000C47.000000 -284.000000,49.000000 -288.000000,55.000000 -296.000000C104.000000 -373.000000,162.000000 -373.000000,182.000000 -373.000000L239.000000 -373.000000C207.000000 -252.000000,153.000000 -131.000000,111.000000 -40.000000C103.000000 -25.000000,103.000000 -23.000000,103.000000 -16.000000C103.000000 3.000000,119.000000 11.000000,132.000000 11.000000C162.000000 11.000000,170.000000 -17.000000,182.000000 -54.000000C196.000000 -100.000000,196.000000 -102.000000,209.000000 -152.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_73">
      <path style="fill-rule: evenodd;" d="M374.000000 -606.000000C383.000000 -642.000000,386.000000 -652.000000,465.000000 -652.000000C489.000000 -652.000000,497.000000 -652.000000,497.000000 -671.000000C497.000000 -683.000000,486.000000 -683.000000,482.000000 -683.000000L350.000000 -683.000000L453.000000 -683.000000L379.000000 -680.000000L350.000000 -680.000000L320.000000 -680.000000L247.000000 -683.000000L217.000000 -683.000000C210.000000 -683.000000,197.000000 -683.000000,197.000000 -663.000000C197.000000 -652.000000,206.000000 -652.000000,225.000000 -652.000000C267.000000 -652.000000,294.000000 -652.000000,294.000000 -633.000000C294.000000 -628.000000,294.000000 -626.000000,292.000000 -617.000000L157.000000 -78.000000C148.000000 -41.000000,145.000000 -31.000000,66.000000 -31.000000C43.000000 -31.000000,34.000000 -31.000000,34.000000 -11.000000C34.000000 -0.000000,46.000000 -0.000000,49.000000 -0.000000L180.000000 -0.000000L78.000000 -0.000000L151.000000 -3.000000L180.000000 -3.000000L210.000000 -3.000000L284.000000 -0.000000L314.000000 -0.000000C322.000000 -0.000000,334.000000 -0.000000,334.000000 -19.000000C334.000000 -31.000000,326.000000 -31.000000,304.000000 -31.000000C286.000000 -31.000000,281.000000 -31.000000,261.000000 -33.000000C240.000000 -35.000000,236.000000 -39.000000,236.000000 -50.000000C236.000000 -58.000000,238.000000 -66.000000,240.000000 -73.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_80">
      <path style="fill-rule: evenodd;" d="M303.000000 -316.000000L473.000000 -316.000000C615.000000 -316.000000,754.000000 -420.000000,754.000000 -532.000000C754.000000 -609.000000,688.000000 -683.000000,557.000000 -683.000000L233.000000 -683.000000C214.000000 -683.000000,203.000000 -683.000000,203.000000 -664.000000C203.000000 -652.000000,212.000000 -652.000000,232.000000 -652.000000C245.000000 -652.000000,263.000000 -651.000000,275.000000 -650.000000C291.000000 -648.000000,297.000000 -645.000000,297.000000 -634.000000C297.000000 -630.000000,296.000000 -627.000000,293.000000 -615.000000L159.000000 -78.000000C149.000000 -39.000000,147.000000 -31.000000,68.000000 -31.000000C51.000000 -31.000000,40.000000 -31.000000,40.000000 -12.000000C40.000000 -0.000000,52.000000 -0.000000,55.000000 -0.000000C83.000000 -0.000000,154.000000 -3.000000,182.000000 -3.000000C203.000000 -3.000000,225.000000 -2.000000,246.000000 -2.000000C268.000000 -2.000000,290.000000 -0.000000,311.000000 -0.000000C318.000000 -0.000000,331.000000 -0.000000,331.000000 -20.000000C331.000000 -31.000000,322.000000 -31.000000,303.000000 -31.000000C266.000000 -31.000000,238.000000 -31.000000,238.000000 -49.000000C238.000000 -55.000000,240.000000 -60.000000,241.000000 -66.000000M375.000000 -614.000000C384.000000 -649.000000,386.000000 -652.000000,429.000000 -652.000000L525.000000 -652.000000C608.000000 -652.000000,661.000000 -625.000000,661.000000 -556.000000C661.000000 -517.000000,641.000000 -431.000000,602.000000 -395.000000C552.000000 -350.000000,492.000000 -342.000000,448.000000 -342.000000L307.000000 -342.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_104">
      <path style="fill-rule: evenodd;" d="M287.000000 -683.000000C287.000000 -684.000000,287.000000 -694.000000,274.000000 -694.000000C251.000000 -694.000000,178.000000 -686.000000,152.000000 -684.000000C144.000000 -683.000000,133.000000 -682.000000,133.000000 -664.000000C133.000000 -652.000000,142.000000 -652.000000,157.000000 -652.000000C205.000000 -652.000000,207.000000 -645.000000,207.000000 -635.000000L204.000000 -615.000000L59.000000 -39.000000C55.000000 -25.000000,55.000000 -23.000000,55.000000 -17.000000C55.000000 6.000000,75.000000 11.000000,84.000000 11.000000C100.000000 11.000000,116.000000 -1.000000,121.000000 -15.000000L140.000000 -91.000000L162.000000 -181.000000C168.000000 -203.000000,174.000000 -225.000000,179.000000 -248.000000C181.000000 -254.000000,189.000000 -287.000000,190.000000 -293.000000C193.000000 -302.000000,224.000000 -358.000000,258.000000 -385.000000C280.000000 -401.000000,311.000000 -420.000000,354.000000 -420.000000C397.000000 -420.000000,408.000000 -386.000000,408.000000 -350.000000C408.000000 -296.000000,370.000000 -187.000000,346.000000 -126.000000C338.000000 -103.000000,333.000000 -91.000000,333.000000 -71.000000C333.000000 -24.000000,368.000000 11.000000,415.000000 11.000000C509.000000 11.000000,546.000000 -135.000000,546.000000 -143.000000C546.000000 -153.000000,537.000000 -153.000000,534.000000 -153.000000C524.000000 -153.000000,524.000000 -150.000000,519.000000 -135.000000C504.000000 -82.000000,472.000000 -11.000000,417.000000 -11.000000C400.000000 -11.000000,393.000000 -21.000000,393.000000 -44.000000C393.000000 -69.000000,402.000000 -93.000000,411.000000 -115.000000C427.000000 -158.000000,472.000000 -277.000000,472.000000 -335.000000C472.000000 -400.000000,432.000000 -442.000000,357.000000 -442.000000C294.000000 -442.000000,246.000000 -411.000000,209.000000 -365.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_105">
      <path style="fill-rule: evenodd;" d="M284.000000 -625.000000C284.000000 -645.000000,270.000000 -661.000000,247.000000 -661.000000C220.000000 -661.000000,193.000000 -635.000000,193.000000 -608.000000C193.000000 -589.000000,207.000000 -572.000000,231.000000 -572.000000C254.000000 -572.000000,284.000000 -595.000000,284.000000 -625.000000M208.000000 -249.000000C220.000000 -278.000000,220.000000 -280.000000,230.000000 -307.000000C238.000000 -327.000000,243.000000 -341.000000,243.000000 -360.000000C243.000000 -405.000000,211.000000 -442.000000,161.000000 -442.000000C67.000000 -442.000000,29.000000 -297.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -280.000000,57.000000 -296.000000C84.000000 -390.000000,124.000000 -420.000000,158.000000 -420.000000C166.000000 -420.000000,183.000000 -420.000000,183.000000 -388.000000C183.000000 -367.000000,176.000000 -346.000000,172.000000 -336.000000C164.000000 -310.000000,119.000000 -194.000000,103.000000 -151.000000C93.000000 -125.000000,80.000000 -92.000000,80.000000 -71.000000C80.000000 -24.000000,114.000000 11.000000,162.000000 11.000000C256.000000 11.000000,293.000000 -134.000000,293.000000 -143.000000C293.000000 -153.000000,284.000000 -153.000000,281.000000 -153.000000C271.000000 -153.000000,271.000000 -150.000000,266.000000 -135.000000C248.000000 -72.000000,215.000000 -11.000000,164.000000 -11.000000C147.000000 -11.000000,140.000000 -21.000000,140.000000 -44.000000C140.000000 -69.000000,146.000000 -83.000000,169.000000 -144.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_108">
      <path style="fill-rule: evenodd;" d="M258.000000 -683.000000C258.000000 -684.000000,258.000000 -694.000000,245.000000 -694.000000C222.000000 -694.000000,149.000000 -686.000000,123.000000 -684.000000C115.000000 -683.000000,104.000000 -682.000000,104.000000 -663.000000C104.000000 -652.000000,114.000000 -652.000000,129.000000 -652.000000C177.000000 -652.000000,178.000000 -643.000000,178.000000 -635.000000L175.000000 -615.000000L49.000000 -115.000000C46.000000 -104.000000,44.000000 -97.000000,44.000000 -81.000000C44.000000 -24.000000,88.000000 11.000000,135.000000 11.000000C168.000000 11.000000,193.000000 -9.000000,210.000000 -45.000000C228.000000 -83.000000,240.000000 -141.000000,240.000000 -143.000000C240.000000 -153.000000,231.000000 -153.000000,228.000000 -153.000000C218.000000 -153.000000,217.000000 -149.000000,214.000000 -135.000000C197.000000 -70.000000,178.000000 -11.000000,138.000000 -11.000000C108.000000 -11.000000,108.000000 -43.000000,108.000000 -57.000000C108.000000 -81.000000,109.000000 -86.000000,114.000000 -105.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_110">
      <path style="fill-rule: evenodd;" d="M88.000000 -59.000000C85.000000 -44.000000,79.000000 -21.000000,79.000000 -16.000000C79.000000 2.000000,93.000000 11.000000,108.000000 11.000000C120.000000 11.000000,138.000000 3.000000,145.000000 -17.000000C146.000000 -19.000000,158.000000 -66.000000,164.000000 -91.000000L186.000000 -181.000000C192.000000 -203.000000,198.000000 -225.000000,203.000000 -248.000000C207.000000 -265.000000,215.000000 -294.000000,216.000000 -298.000000C231.000000 -329.000000,284.000000 -420.000000,379.000000 -420.000000C424.000000 -420.000000,433.000000 -383.000000,433.000000 -350.000000C433.000000 -288.000000,384.000000 -160.000000,368.000000 -117.000000C359.000000 -94.000000,358.000000 -82.000000,358.000000 -71.000000C358.000000 -24.000000,393.000000 11.000000,440.000000 11.000000C534.000000 11.000000,571.000000 -135.000000,571.000000 -143.000000C571.000000 -153.000000,562.000000 -153.000000,559.000000 -153.000000C549.000000 -153.000000,549.000000 -150.000000,544.000000 -135.000000C524.000000 -67.000000,491.000000 -11.000000,442.000000 -11.000000C425.000000 -11.000000,418.000000 -21.000000,418.000000 -44.000000C418.000000 -69.000000,427.000000 -93.000000,436.000000 -115.000000C455.000000 -168.000000,497.000000 -278.000000,497.000000 -335.000000C497.000000 -402.000000,454.000000 -442.000000,382.000000 -442.000000C292.000000 -442.000000,243.000000 -378.000000,226.000000 -355.000000C221.000000 -411.000000,180.000000 -442.000000,134.000000 -442.000000C88.000000 -442.000000,69.000000 -403.000000,59.000000 -385.000000C43.000000 -351.000000,29.000000 -292.000000,29.000000 -288.000000C29.000000 -278.000000,39.000000 -278.000000,41.000000 -278.000000C51.000000 -278.000000,52.000000 -279.000000,58.000000 -301.000000C75.000000 -372.000000,95.000000 -420.000000,131.000000 -420.000000C151.000000 -420.000000,162.000000 -407.000000,162.000000 -374.000000C162.000000 -353.000000,159.000000 -342.000000,146.000000 -290.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHptmr8r_95">
      <path style="fill-rule: evenodd;" d="M500.000000 125.000000L500.000000 75.000000L0.000000 75.000000L0.000000 125.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,181.905624 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_73"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,190.163574 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_95"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,198.133835 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_108"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,207.631485 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_61"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,224.457138 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_73"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,232.715103 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_95"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,240.685379 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
    <use xlink:href="#GLYPHcmmi10_108" x="6.002436"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,258.865280 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_43"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,277.562469 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <path d="M276.718475 36.721695L286.376740 36.721695" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,276.718475 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,291.831802 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,299.801758 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_97"></use>
    <use xlink:href="#GLYPHcmr10_114" x="5.000095"></use>
    <use xlink:href="#GLYPHcmr10_99" x="8.916841"></use>
    <use xlink:href="#GLYPHcmr10_116" x="13.361370"></use>
    <use xlink:href="#GLYPHcmr10_97" x="17.250332"></use>
    <use xlink:href="#GLYPHcmr10_110" x="22.250427"></use>
    <use xlink:href="#GLYPHcmr10_40" x="27.806088"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,366.848404 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,379.296295 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_104"></use>
    <use xlink:href="#GLYPHcmmi10_105" x="5.761680"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,397.514297 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,405.484238 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_115"></use>
    <use xlink:href="#GLYPHcmr10_105" x="3.944515"></use>
    <use xlink:href="#GLYPHcmr10_110" x="6.722345"></use>
    <use xlink:href="#GLYPHcmr10_40" x="12.278006"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,431.254578 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,444.454941 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,452.425049 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_73"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,460.683014 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_95"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,468.653107 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
    <use xlink:href="#GLYPHcmmi10_108" x="6.002436"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,483.290939 29.923111)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_41"></use>
  </g>
  <path d="M352.236679 36.721695L504.101898 36.721695" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,352.236679 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_49"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,363.749054 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_0"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,379.689240 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,392.136978 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_104"></use>
    <use xlink:href="#GLYPHcmmi10_105" x="5.761680"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,410.354965 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,418.325089 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_99"></use>
    <use xlink:href="#GLYPHcmr10_111" x="4.444529"></use>
    <use xlink:href="#GLYPHcmr10_115" x="9.444624"></use>
    <use xlink:href="#GLYPHcmr10_40" x="13.389138"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,445.866302 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,459.066849 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_1"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,467.036942 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_73"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,475.294907 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHptmr8r_95"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,483.265015 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_110"></use>
    <use xlink:href="#GLYPHcmmi10_108" x="6.002436"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,497.902832 51.641113)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_41"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,506.014709 40.706818)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_41"></use>
  </g>
</svg></span>
</p>
<p>with I_l the linear gray value and I_nl the (nonlinear) gray value.
</p>
<p>The parameter <a href="#OECFModel"><i><code><span data-if="hdevelop" style="display:inline">OECFModel</span><span data-if="c" style="display:none">OECFModel</span><span data-if="cpp" style="display:none">OECFModel</span><span data-if="com" style="display:none">OECFModel</span><span data-if="dotnet" style="display:none">OECFModel</span><span data-if="python" style="display:none">oecfmodel</span></code></i></a> is only used if the calibrated model has
been chosen. Otherwise, any input for <a href="#OECFModel"><i><code><span data-if="hdevelop" style="display:inline">OECFModel</span><span data-if="c" style="display:none">OECFModel</span><span data-if="cpp" style="display:none">OECFModel</span><span data-if="com" style="display:none">OECFModel</span><span data-if="dotnet" style="display:none">OECFModel</span><span data-if="python" style="display:none">oecfmodel</span></code></i></a> will be ignored.
</p>
<p>The parameter <a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> can also be used to influence
the performance and memory consumption of 该算子. With
<i><span data-if="hdevelop" style="display:inline">'no_cache'</span><span data-if="c" style="display:none">"no_cache"</span><span data-if="cpp" style="display:none">"no_cache"</span><span data-if="com" style="display:none">"no_cache"</span><span data-if="dotnet" style="display:none">"no_cache"</span><span data-if="python" style="display:none">"no_cache"</span></i> the internal caching mechanism can be disabled. This
switch only has and influence if <a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> is set to
<i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>. Otherwise this switch will be ignored. When
disabling the internal caching, 该算子 uses far less memory, but
therefore calculates the corresponding gray value pairs in each iteration
of the minimization algorithm again. Therefore, disabling caching is only
advisable if all physical memory is used up at some point of the calculation
and the operating system starts using swap space.
</p>
<p>A second option to influence the performance is using subsampling. When
setting <a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a> to <i><span data-if="hdevelop" style="display:inline">'subsampling_2'</span><span data-if="c" style="display:none">"subsampling_2"</span><span data-if="cpp" style="display:none">"subsampling_2"</span><span data-if="com" style="display:none">"subsampling_2"</span><span data-if="dotnet" style="display:none">"subsampling_2"</span><span data-if="python" style="display:none">"subsampling_2"</span></i>, images
are internally zoomed down by a factor of 2. Despite the suggested value
list,  not only factors of 2 and 4 are available, but any integer number
might be specified by appending it to subsampling_ in
<a href="#EstimateParameters"><i><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></i></a>. With this, the amount of image data is
tremendously reduced, which leads to  a much faster computation of the
internal minimization. In fact, using moderate subsampling might even lead
to better results since it also decreases the influence of slightly
misaligned pixels. Although subsampling also influences the minimization if
<a href="#EstimationMethod"><i><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></i></a> is set to <i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i>, it is mostly
useful for <i><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span></i>.
</p>
<p>Some more general remarks on using <code><span data-if="hdevelop" style="display:inline">adjust_mosaic_images</span><span data-if="c" style="display:none">adjust_mosaic_images</span><span data-if="cpp" style="display:none">AdjustMosaicImages</span><span data-if="com" style="display:none">AdjustMosaicImages</span><span data-if="dotnet" style="display:none">AdjustMosaicImages</span><span data-if="python" style="display:none">adjust_mosaic_images</span></code> in
applications:
</p>
<ul>
<li>
<p> Estimation of vignetting will only work well if significant
vignetting is visible in the images. Otherwise, 该算子 may lead
to erratic results.
</p>
</li>
<li>
<p> Estimation of the response is rather slow because the problem is quite
complex. Therefore, it is advisable not to determine the response in
time critical applications. Apart from this, the response can only be
determined correctly if there are relatively large brightness
differences between the images.
</p>
</li>
<li>
<p> It is not possible to correct saturation. If there are saturated
areas in an image, they will remain saturated.
</p>
</li>
<li>
<p> <code><span data-if="hdevelop" style="display:inline">adjust_mosaic_images</span><span data-if="c" style="display:none">adjust_mosaic_images</span><span data-if="cpp" style="display:none">AdjustMosaicImages</span><span data-if="com" style="display:none">AdjustMosaicImages</span><span data-if="dotnet" style="display:none">AdjustMosaicImages</span><span data-if="python" style="display:none">adjust_mosaic_images</span></code> can only be used to correct different
brightness in images, which is caused by different exposure
(shutter time, aperture) or different light intensity.
It cannot be used to correct brightness differences based on
inhomogeneous illumination within each image.
</p>
</li>
</ul>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Images" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Images</span><span data-if="c" style="display:none">Images</span><span data-if="cpp" style="display:none">Images</span><span data-if="com" style="display:none">Images</span><span data-if="dotnet" style="display:none">images</span><span data-if="python" style="display:none">images</span></code></b> (input_object)  </span><span>(multichannel-)image-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject</span> (byte)</span>
</div>
<p class="pardesc">Input images.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CorrectedImages" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CorrectedImages</span><span data-if="c" style="display:none">CorrectedImages</span><span data-if="cpp" style="display:none">CorrectedImages</span><span data-if="com" style="display:none">CorrectedImages</span><span data-if="dotnet" style="display:none">correctedImages</span><span data-if="python" style="display:none">corrected_images</span></code></b> (output_object)  </span><span>(multichannel-)image-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (byte)</span>
</div>
<p class="pardesc">Output images.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="From" class="parname"><b><code><span data-if="hdevelop" style="display:inline">From</span><span data-if="c" style="display:none">From</span><span data-if="cpp" style="display:none">From</span><span data-if="com" style="display:none">From</span><span data-if="dotnet" style="display:none">from</span><span data-if="python" style="display:none">from</span></code></b> (input_control)  </span><span>integer-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">List of source images.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="To" class="parname"><b><code><span data-if="hdevelop" style="display:inline">To</span><span data-if="c" style="display:none">To</span><span data-if="cpp" style="display:none">To</span><span data-if="com" style="display:none">To</span><span data-if="dotnet" style="display:none">to</span><span data-if="python" style="display:none">to</span></code></b> (input_control)  </span><span>integer-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">List of destination images.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ReferenceImage" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ReferenceImage</span><span data-if="c" style="display:none">ReferenceImage</span><span data-if="cpp" style="display:none">ReferenceImage</span><span data-if="com" style="display:none">ReferenceImage</span><span data-if="dotnet" style="display:none">referenceImage</span><span data-if="python" style="display:none">reference_image</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Reference image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="HomMatrices2D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">HomMatrices2D</span><span data-if="c" style="display:none">HomMatrices2D</span><span data-if="cpp" style="display:none">HomMatrices2D</span><span data-if="com" style="display:none">HomMatrices2D</span><span data-if="dotnet" style="display:none">homMatrices2D</span><span data-if="python" style="display:none">hom_matrices_2d</span></code></b> (input_control)  </span><span>real-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Projective matrices.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="EstimationMethod" class="parname"><b><code><span data-if="hdevelop" style="display:inline">EstimationMethod</span><span data-if="c" style="display:none">EstimationMethod</span><span data-if="cpp" style="display:none">EstimationMethod</span><span data-if="com" style="display:none">EstimationMethod</span><span data-if="dotnet" style="display:none">estimationMethod</span><span data-if="python" style="display:none">estimation_method</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Estimation algorithm for the correction.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'standard'</span>
    <span data-if="c" style="display:none">"standard"</span>
    <span data-if="cpp" style="display:none">"standard"</span>
    <span data-if="com" style="display:none">"standard"</span>
    <span data-if="dotnet" style="display:none">"standard"</span>
    <span data-if="python" style="display:none">"standard"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'gold_standard'</span><span data-if="c" style="display:none">"gold_standard"</span><span data-if="cpp" style="display:none">"gold_standard"</span><span data-if="com" style="display:none">"gold_standard"</span><span data-if="dotnet" style="display:none">"gold_standard"</span><span data-if="python" style="display:none">"gold_standard"</span>, <span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="EstimateParameters" class="parname"><b><code><span data-if="hdevelop" style="display:inline">EstimateParameters</span><span data-if="c" style="display:none">EstimateParameters</span><span data-if="cpp" style="display:none">EstimateParameters</span><span data-if="com" style="display:none">EstimateParameters</span><span data-if="dotnet" style="display:none">estimateParameters</span><span data-if="python" style="display:none">estimate_parameters</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Parameters to be estimated.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">['mult_gray']</span>
    <span data-if="c" style="display:none">["mult_gray"]</span>
    <span data-if="cpp" style="display:none">["mult_gray"]</span>
    <span data-if="com" style="display:none">["mult_gray"]</span>
    <span data-if="dotnet" style="display:none">["mult_gray"]</span>
    <span data-if="python" style="display:none">["mult_gray"]</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'add_gray'</span><span data-if="c" style="display:none">"add_gray"</span><span data-if="cpp" style="display:none">"add_gray"</span><span data-if="com" style="display:none">"add_gray"</span><span data-if="dotnet" style="display:none">"add_gray"</span><span data-if="python" style="display:none">"add_gray"</span>, <span data-if="hdevelop" style="display:inline">'mult_gray'</span><span data-if="c" style="display:none">"mult_gray"</span><span data-if="cpp" style="display:none">"mult_gray"</span><span data-if="com" style="display:none">"mult_gray"</span><span data-if="dotnet" style="display:none">"mult_gray"</span><span data-if="python" style="display:none">"mult_gray"</span>, <span data-if="hdevelop" style="display:inline">'response'</span><span data-if="c" style="display:none">"response"</span><span data-if="cpp" style="display:none">"response"</span><span data-if="com" style="display:none">"response"</span><span data-if="dotnet" style="display:none">"response"</span><span data-if="python" style="display:none">"response"</span>, <span data-if="hdevelop" style="display:inline">'vignetting'</span><span data-if="c" style="display:none">"vignetting"</span><span data-if="cpp" style="display:none">"vignetting"</span><span data-if="com" style="display:none">"vignetting"</span><span data-if="dotnet" style="display:none">"vignetting"</span><span data-if="python" style="display:none">"vignetting"</span>, <span data-if="hdevelop" style="display:inline">'subsampling_2'</span><span data-if="c" style="display:none">"subsampling_2"</span><span data-if="cpp" style="display:none">"subsampling_2"</span><span data-if="com" style="display:none">"subsampling_2"</span><span data-if="dotnet" style="display:none">"subsampling_2"</span><span data-if="python" style="display:none">"subsampling_2"</span>, <span data-if="hdevelop" style="display:inline">'subsampling_4'</span><span data-if="c" style="display:none">"subsampling_4"</span><span data-if="cpp" style="display:none">"subsampling_4"</span><span data-if="com" style="display:none">"subsampling_4"</span><span data-if="dotnet" style="display:none">"subsampling_4"</span><span data-if="python" style="display:none">"subsampling_4"</span>, <span data-if="hdevelop" style="display:inline">'no_cache'</span><span data-if="c" style="display:none">"no_cache"</span><span data-if="cpp" style="display:none">"no_cache"</span><span data-if="com" style="display:none">"no_cache"</span><span data-if="dotnet" style="display:none">"no_cache"</span><span data-if="python" style="display:none">"no_cache"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="OECFModel" class="parname"><b><code><span data-if="hdevelop" style="display:inline">OECFModel</span><span data-if="c" style="display:none">OECFModel</span><span data-if="cpp" style="display:none">OECFModel</span><span data-if="com" style="display:none">OECFModel</span><span data-if="dotnet" style="display:none">OECFModel</span><span data-if="python" style="display:none">oecfmodel</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Model of OECF to be used.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">['laguerre']</span>
    <span data-if="c" style="display:none">["laguerre"]</span>
    <span data-if="cpp" style="display:none">["laguerre"]</span>
    <span data-if="com" style="display:none">["laguerre"]</span>
    <span data-if="dotnet" style="display:none">["laguerre"]</span>
    <span data-if="python" style="display:none">["laguerre"]</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'laguerre'</span><span data-if="c" style="display:none">"laguerre"</span><span data-if="cpp" style="display:none">"laguerre"</span><span data-if="com" style="display:none">"laguerre"</span><span data-if="dotnet" style="display:none">"laguerre"</span><span data-if="python" style="display:none">"laguerre"</span></p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* For the input data to stationary_camera_self_calibration, please
* refer to the example for stationary_camera_self_calibration.
stationary_camera_self_calibration (4, 640, 480, 1, From, To, \
                                    HomMatrices2D, Rows1, Cols1, \
                                    Rows2, Cols2, NumMatches, \
                                    'gold_standard', \
                                    ['focus','principal_point'], \
                                    'true', CameraMatrix, Kappa, \
                                    RotationMatrices, X, Y, Z, Error)
adjust_mosaic_images(Images,CorrectedImages,From,To,1,HomMatrices2D, \
                     'gold_standard',['mult_gray','response'],'laguerre')
</pre>
<h2 id="sec_result">结果</h2>
<p>如果参数均有效，算子
<code><span data-if="hdevelop" style="display:inline">adjust_mosaic_images</span><span data-if="c" style="display:none">adjust_mosaic_images</span><span data-if="cpp" style="display:none">AdjustMosaicImages</span><span data-if="com" style="display:none">AdjustMosaicImages</span><span data-if="dotnet" style="display:none">AdjustMosaicImages</span><span data-if="python" style="display:none">adjust_mosaic_images</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If
necessary an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="stationary_camera_self_calibration.html"><span data-if="hdevelop" style="display:inline">stationary_camera_self_calibration</span><span data-if="c" style="display:none">stationary_camera_self_calibration</span><span data-if="cpp" style="display:none">StationaryCameraSelfCalibration</span><span data-if="com" style="display:none">StationaryCameraSelfCalibration</span><span data-if="dotnet" style="display:none">StationaryCameraSelfCalibration</span><span data-if="python" style="display:none">stationary_camera_self_calibration</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="gen_spherical_mosaic.html"><span data-if="hdevelop" style="display:inline">gen_spherical_mosaic</span><span data-if="c" style="display:none">gen_spherical_mosaic</span><span data-if="cpp" style="display:none">GenSphericalMosaic</span><span data-if="com" style="display:none">GenSphericalMosaic</span><span data-if="dotnet" style="display:none">GenSphericalMosaic</span><span data-if="python" style="display:none">gen_spherical_mosaic</span></a></code>
</p>
<h2 id="sec_references">References</h2>
<p>

David Hasler, Sabine Süsstrunk: Mapping colour in image stitching
applications. Journal of Visual Communication and Image Representation,
15(1):65-90, 2004.
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
